morder
function returns a permutation of row indices which can be used
to rearrangea an object
according to the values in the specified columns (a multi-column ordering).
The mpermute
function actually
reorders the rows of a big.matrix
or matrix
based on
an order vector or a desired ordering on a set of columns.morder(x, cols, na.last=TRUE, decreasing = FALSE)
mpermute(x, order=NULL, cols=NULL, allow.duplicates=FALSE, ...)
big.matrix
or matrix
object with numeric values.x
to get the ordering for or reorder onNA
s. If
TRUE
, missing values in the data are put last; if FALSE
,
they are put first; if NA
, they are removed.order
or morder
.TRUE
, allows a row to be dupicated in
the resulting big.matrix
or matrix
(i.e. in this case, order
would not need to be a permutation of 1:nrow(x)
).morder
when cols
is specified instead of just using order
.morder
returns an ordering vector.mpermute
returns nothing but does change the contents of x
.
This type of a side-effect is generally frowned upon in R, but we ``break''
the rules here to avoid memory overhead and improve performance.
morder
function behaves similar to order
, returning
a permutation of 1:nrow(x)
which rearranges objects according to the
values in the specified columns. However, morder
takes
a big.matrix
or an Rmatrix
(with numeric type) and a set of
columns (cols
) with which to determine the ordering; morder
does
not incur the same memory overhead required by order
, and runs more quickly.The mpermute
function changes the row ordering of a big.matrix
or matrix
based on a vector order
or an ordering based
on a set of columns specifed by cols
. It should be noted that
this function has side-effects, that is x
is changed when this
function is called.
order
m = matrix(as.double(as.matrix(iris)), nrow=nrow(iris))
morder(m, 1)
order(m[,1])
m[order(m[,1]), 2]
mpermute(m, cols=1)
m[,2]
Run the code above in your browser using DataLab